import axios from "axios"
import store from '../store/store.js'
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
 
import {
	Toast
} from 'vant'

const instance = axios.create({
	timeout: 5000
})


export function get(url, data) {
	return instance.get(url, {
		params: data
	})
}

export function post(url, data) {
	return instance.post(url, data)
}

// 第一次登录的时候，前端调后端的登陆接口，发送用户名和密码

// 2、后端收到请求，验证用户名和密码，验证成功，就给前端返回一个token

// 3、前端拿到token，将token存储到localStorage和vuex中，并跳转路由页面

// 4、前端每次跳转路由，就判断 localStroage 中有无 token ，没有就跳转到登录页面，有则跳转到对应路由页面

// 5、每次调后端接口，都要在请求头中加token

// 6、后端判断请求头中有无token，有token，就拿到token并验证token，验证成功就返回数据，验证失败（例如：token过期）就返回401，请求头中没有token也返回401

// 7、如果前端拿到状态码为401，就清除token信息并跳转到登录页面


//请求拦截：已登录时封装token进头部
//请求拦截 所有的网络请求都会先走这个方法
instance.interceptors.request.use(
	config => {
		 // config.headers.to = 123
		// console.log(config)
		// 获取vuex的token
		
		const token = store.state.token
			// console.log(token)
			if(token){
				config.headers['X-Litemall-Token'] = token 
				console.log("已登录")
				// console.log(config)
			}else{
				console.log('未登陆');
				// console.log(config)
			}
		  return config;
		}, 
)
// 响应拦截
// 所有的网络请求返回数据时都会先执行这个方法
// instance.interceptors.response.use(
// 	res => {
// 			console.log('拦截')
// 	 console.log(res.data)
// 		if (res.status == 200 && res.data.data.errmsg !== '成功') {
// 			 Toast.fail(res.data.data.errmsg)
// 			return res.data
// 		} else {
// 			return res.data
// 		}
// 	},
// 	err => {
// 		 Toast.fail('请求失败,请稍后重试')
// 		 return Promise.reject(error);
// 	}
// )







// axios.interceptors.request.use(function (config) {
//     // 在发送请求之前做些什么
// 	config.headers.to = 123
//     return config;
//   }, function (error) {
//     // 对请求错误做些什么
//     return Promise.reject(error);
//   });

// // 添加响应拦截器
// axios.interceptors.response.use(function (response) {
//     // 对响应数据做点什么
// 	console.log('拦截')
// 	response.code = 666
//     return response;
//   }, function (error) {
//     // 对响应错误做点什么
//     return Promise.reject(error);
//   });
